package demo4.mapper;

import demo4.pojo.User;

import java.util.List;


/*
 * Mapper 数据持久层的类
 * 这个层级的类负责和数据库的表进行增删改查相关操作
 *
 * 将来公司中接口与实现类的命名规则
 *
 * 第一种:
 *   接口以"I"开始。
 *   实现类的名字直接。
 *   例如:对数据库中user表进行操作的Mapper
 *   接口名:IUserMapper
 *   实现类:UserMapper
 *
 * 第二种:
 *   接口名字直接
 *   实现类以Impl结尾
 *   例如:对数据库中user表进行操作的Mapper
 *   接口名:UserMapper
 *   实现类:UserMapperImpl
 */
public interface IUserMapper {
    /**
     * 将user对象表示的用户信息插入数据库user表中
     * @param user
     * @return 返回值表示执行后影响了表中多少条记录
     */
    int insert(User user);


    /**
     * 根据用户名查询用户信息
     * @param username
     * @return
     */
    User selectByUsername(String username);


    /**
     * 查询所有用户信息
     * @return  集合中的每一个User对象就是user表中的一条记录
     */
    List<User> selectAll();


    /**
     * 根据用户名修改用户信息(密码，昵称，年龄)
     * @param user
     * @return
     */
    int update(User user);
}
